3
תגובות
אהלן .
יצרתי קובץ RSS לאתר שאני מכין עכשיו .
זהו קובץ PHP עם הדר :
header("Content-Type: text/xml");

אבל קיבלתי הודעת שגיאה מוזרה - לא מהPHP אלא מהXML (?!)

הינה הקוד המלא של העמוד הזה :

header("Content-Type: text/xml");
  include("system/class/info.php");
  include("system/db/mysqlit.php");
  $websitename = $info->get_row("setting", "WEBSITE_NAME");
  $domain = $info->get_row("setting", "DOMAIN");
  $description = $info->get_row("setting", "DESCRIPTION");

echo '
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>'.$websitename["text"].'</title>
    <description>'.$description["text"].'</description>
    <link>'.$domain["text"].'</link>
  '; ?>

<?php
$str = "" ;
$i=0;
while ($i < 2)
{
$str .= '    <item>
        <title>כותרת 2</title>
        <description>תקציר 2</description>
        <link>http://www.ok.co.il</link>
        <pubDate>00/000/0000 – 00:00:00</pubDate>
    </item>'
;
  $i++;
}
 
echo $str.'
</channel>

</rss>'
;


אל תתייחסו ללולאה . זה אמור לשלוף מהמסד . אבל רק רציתי לבדוק את זה על "יבש" ...


השגיאה היא : שגיאה בניתוח XML:‏ הוראות עיבוד XML אינן בתחילת ישות חיצונית
<?xml version="1.0"?>
אשמח אם תעזרו לי ...

3 תשובות

avatar ענה shlomo120 ב 26 ליולי 2012 #

( אל תתיחסו שחסר בהתחלה ובסוף תגי PHP ... לא סימנתי אותם בטעות ... ואני לא מוצא כאן כפתור עריכה )

avatar ענה Y_Y ב 26 ליולי 2012 #

הצורת עבודה שלך עם XML וRSS היא לא נכונה.
אין צורך להדפיס את הטגים הללו,יש מחלקה שבאה עם הPHP שנקראת XMLWriter תוכל להרחיב אותה עצמאית לRSS ואז סגרת את הפינה שלך ..

הצורת עבודה שלה:

בניית כותב

$writer = new XMLWriter();


בניית אלמנט
$writer->startElement('rss');
$writer->writeAttribute('version', '2.0');  


$writer->startElement("item");
$writer->writeElement('title', 'Product ');

avatar ענה intval ב 26 ליולי 2012 #

הבעיה נובעת מזה שיש לך רווח (מעבר שורה) לפני התאג הפותח של xml

אני רק הוסיף שבדרך כלל ל rss ההדר המתאים הוא:

header('Content-Type: application/rss+xml; charset=utf-8');

ובכלל כדאי להקשיב ל Y-Y, כיוון שב-PHP יש כלים מובנים ליצירת xml
אבל זה כבר לפי איך שנוח לך.